home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2008 April / PCgo 2008-04 (DVD).iso / interface / contents / demoversionen_3846 / 13664 / files / Data1.cab / gxsurf.idl < prev    next >
Encoding:
Text File  |  2003-03-03  |  41.3 KB  |  1,736 lines

  1. // GXSurf.idl : IDL source for GXSurface80.dll
  2. //
  3.  
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (GXSurface80.tlb) and marshalling code.
  6.  
  7. /* 
  8.     ISurface
  9.  
  10.         Facets
  11.             IFacet
  12.                 Contours
  13.                     IContour
  14.                 Nodes
  15.                 Edges
  16.  
  17.         Edges
  18.           IEdge
  19.             Nodes
  20.             Facets
  21.  
  22.         Nodes
  23.             INode
  24.                 Facets
  25.                 Edges
  26.                 Normals
  27.                 Textures
  28.  
  29.         Normals
  30.             INormal
  31.                 Nodes
  32.  
  33.         Textures
  34.             ITexture
  35.                 Nodes
  36. */
  37.  
  38. import "imsigx.idl";
  39. import "oaidl.idl";
  40.  
  41. interface IApplication;
  42. interface ISurface;
  43. interface IFacet;
  44. interface IEdge;
  45. interface INode;
  46. interface INormal;
  47. interface ITexture;
  48. interface IContour;
  49. interface Facets;
  50. interface Edges;
  51. interface Nodes;
  52. interface Contours;
  53. interface Normals;
  54. interface Textures;
  55.  
  56. typedef enum
  57. {
  58.     imsiSurfDraft    = 1 << 1
  59.    ,imsiSurfNormal    = 1    << 2
  60.    ,imsiSurfQuality = 1 << 3
  61. } ImsiSurfUpdateQuality;
  62.  
  63. typedef enum
  64. {
  65.     imsiNormByPlane        = 1 << 1
  66.    ,imsiNormByAverage    = 1    << 2
  67. } ImsiNormalsBy;
  68.  
  69. typedef enum
  70. {
  71.      imsiSurfNotSmooth
  72.     ,imsiSurfSmooth
  73. } ImsiSmoothQuality;
  74.  
  75.     [
  76.          object
  77.         ,uuid(6A481157-E531-11CF-A115-00A024158DAF)
  78.         ,dual
  79.         ,helpcontext(0x14000000)
  80.         ,helpstring("Contours collection object.")
  81.     ]
  82.     interface Contours : IDispatch
  83.     {
  84.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  85.         /**
  86.          * Returns an Application object that represents the owner of the specified object.
  87.          */
  88.         [
  89.              propget
  90.             ,helpcontext(0x14000001)
  91.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  92.         ]
  93.         HRESULT  Application(
  94.             [out, retval] IApplication** prop // The Application object.
  95.             );
  96.  
  97.         /**
  98.          * Returns an Surface object that represents the owner of the specified object.
  99.          */
  100.         [
  101.              propget
  102.             ,helpcontext(0x14000002)
  103.             ,helpstring("Returns an Surface object that represents the creator of the specified object.")
  104.         ]
  105.         HRESULT  Surface(
  106.             [out, retval] ISurface** prop // The Surface object.
  107.             );
  108.  
  109.         /**
  110.          * Returns an Facet object that represents the owner of the specified object.
  111.          */
  112.         [
  113.              propget
  114.             ,helpcontext(0x14000003)
  115.             ,helpstring("Returns an Facet object that represents the owner of the specified object.")
  116.         ]
  117.         HRESULT  Facet(
  118.             [out, retval] IFacet** prop // The Facet object.
  119.             );
  120.  
  121.         /**
  122.          * Returns the parent object for the specified object.
  123.          */
  124.         [
  125.              propget
  126.             ,helpcontext(0x14000004)
  127.             ,helpstring("Returns the parent object for the specified object.")
  128.         ]
  129.         HRESULT  Parent(
  130.             [out, retval] IDispatch** prop // The parent object.
  131.             );
  132.  
  133.         /*
  134.          * Returns the current coordinate system for items.
  135.          */
  136.         [
  137.              propget
  138.             ,helpcontext(0x14000005)
  139.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  140.         ]
  141.         HRESULT UseWorldCS(
  142.             [out, retval] IMSI_BOOL* bUseWorldCS
  143.             );
  144.  
  145.         /*
  146.          * Returns the current coordinate system for items.
  147.          */
  148.         [
  149.              propput
  150.             ,helpcontext(0x14000005)
  151.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  152.         ]
  153.         HRESULT UseWorldCS(
  154.             [in] IMSI_BOOL bUseWorldCS
  155.             );
  156.  
  157.         /**
  158.          * Returns the number of items in the collection.
  159.          */
  160.         [
  161.              propget
  162.             ,helpcontext(0x14000006)
  163.             ,helpstring("Returns the number of items in the collection.")
  164.         ]
  165.         HRESULT  Count(
  166.             [out, retval] long* prop // The number of items.
  167.             );
  168.  
  169.         /**
  170.          * Returns part of a collection.
  171.          */
  172.         [
  173.              propget
  174.             ,id(DISPID_VALUE)
  175.             ,helpcontext(0x14000007)
  176.             ,helpstring("Returns part of a collection.")
  177.         ]
  178.         HRESULT  Item(
  179.             [in] VARIANT* Index, // Index of item to return.
  180.             [out, retval] IContour** prop // The item.
  181.             );
  182.  
  183.         /**
  184.          * Private. Creates an enumeration object.
  185.          */
  186.         [
  187.              propget
  188.             ,restricted
  189.             ,id(DISPID_NEWENUM)
  190.             ,helpcontext(0x14000008)
  191.             ,helpstring("Private. Creates an enumeration object.")
  192.         ]
  193.         HRESULT  _NewEnum(
  194.             [out, retval] IUnknown** prop // The enumeration object.
  195.             );
  196.  
  197.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  198.     };
  199.  
  200.     [
  201.          object
  202.         ,uuid(6A481156-E531-11CF-A115-00A024158DAF)
  203.         ,dual
  204.         ,helpcontext(0x14010000)
  205.         ,helpstring("Facets collection object.")
  206.     ]
  207.     interface Facets : IDispatch
  208.     {
  209.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  210.         /**
  211.          * Returns an Application object that represents the owner of the specified object.
  212.          */
  213.         [
  214.              propget
  215.             ,helpcontext(0x14010001)
  216.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  217.         ]
  218.         HRESULT  Application(
  219.             [out, retval] IApplication** prop // The Application object.
  220.             );
  221.  
  222.         /**
  223.          * Returns an Surface object that represents the owner of the specified object.
  224.          */
  225.         [
  226.              propget
  227.             ,helpcontext(0x14010002)
  228.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  229.         ]
  230.         HRESULT  Surface(
  231.             [out, retval] ISurface** prop // The Surface object.
  232.             );
  233.  
  234.         /**
  235.          * Returns the parent object for the specified object.
  236.          */
  237.         [
  238.              propget
  239.             ,helpcontext(0x14010003)
  240.             ,helpstring("Returns the parent object for the specified object.")
  241.         ]
  242.         HRESULT  Parent(
  243.             [out, retval] IDispatch** prop // The parent object.
  244.             );
  245.  
  246.         /*
  247.          * Returns the current coordinate system for items.
  248.          */
  249.         [
  250.              propget
  251.             ,helpcontext(0x14010004)
  252.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  253.         ]
  254.         HRESULT UseWorldCS(
  255.             [out, retval] IMSI_BOOL* bUseWorldCS
  256.             );
  257.  
  258.         /*
  259.          * Returns the current coordinate system for items.
  260.          */
  261.         [
  262.              propput
  263.             ,helpcontext(0x14010004)
  264.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  265.         ]
  266.         HRESULT UseWorldCS(
  267.             [in] IMSI_BOOL bUseWorldCS
  268.             );
  269.  
  270.         /**
  271.          * Returns the number of items in the collection.
  272.          */
  273.         [
  274.              propget
  275.             ,helpcontext(0x14010005)
  276.             ,helpstring("Returns the number of items in the collection.")
  277.         ]
  278.         HRESULT  Count(
  279.             [out, retval] long* prop // The number of items.
  280.             );
  281.  
  282.         /**
  283.          * Returns part of a collection.
  284.          */
  285.         [
  286.              propget
  287.             ,id(DISPID_VALUE)
  288.             ,helpcontext(0x14010006)
  289.             ,helpstring("Returns part of a collection.")
  290.         ]
  291.         HRESULT  Item(
  292.             [in] VARIANT* Index, // Index of item to return.
  293.             [out, retval] IFacet** prop // The item.
  294.             );
  295.  
  296.         /**
  297.          * Creates an enumeration object.
  298.          */
  299.         [
  300.              propget
  301.             ,restricted
  302.             ,id(DISPID_NEWENUM)
  303.             ,helpcontext(0x14010007)
  304.             ,helpstring("Creates an enumeration object.")
  305.         ]
  306.         HRESULT  _NewEnum(
  307.             [out, retval] IUnknown** prop // The enumeration object.
  308.             );
  309.  
  310.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  311.         /*
  312.          * Creates a new Facet object and adds it to the collection.
  313.          */
  314.         [
  315.              helpcontext(0x14010008)
  316.             ,helpstring("Creates a new Facet object and adds it to the collection.")
  317.         ]
  318.         HRESULT  Add(
  319.              [in,         ] VARIANT* pvarFacet        // array of coordinates/indexes for the Facet.
  320.             ,[in, optional] VARIANT* pvarTexFacet    // array of texture coordinates for the Facet.
  321.             ,[in, optional] VARIANT* pvarNormsFacet // array of custom normals for the Facet.
  322.             ,[in, optional] VARIANT* pbDblSided        // true if double sided Facet.
  323.             ,[in, optional] VARIANT* pbContour        // true if countour making Facet.
  324.             ,[out, retval ] IFacet** prop            // The newly created Node object.
  325.             );
  326.  
  327.     };
  328.  
  329.     [
  330.          object
  331.         ,uuid(6A481155-E531-11CF-A115-00A024158DAF)
  332.         ,dual
  333.         ,helpcontext(0x14020000)
  334.         ,helpstring("Nodes collection object.")
  335.     ]
  336.  
  337.     interface Nodes : IDispatch
  338.     {
  339.  
  340.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  341.         /**
  342.          * Returns an Application object that represents the owner of the specified object.
  343.          */
  344.         [
  345.              propget
  346.             ,helpcontext(0x14020001)
  347.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  348.         ]
  349.         HRESULT  Application(
  350.             [out, retval] IApplication** prop // The Application object.
  351.             );
  352.  
  353.         /**
  354.          * Returns an Surface object that represents the owner of the specified object.
  355.          */
  356.         [
  357.              propget
  358.             ,helpcontext(0x14020002)
  359.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  360.         ]
  361.         HRESULT  Surface(
  362.             [out, retval] ISurface** prop // The Surface object.
  363.             );
  364.  
  365.         /**
  366.          * Returns the parent object for the specified object.
  367.          */
  368.         [
  369.              propget
  370.             ,helpcontext(0x14020003)
  371.             ,helpstring("Returns the parent object for the specified object.")
  372.         ]
  373.         HRESULT  Parent(
  374.             [out, retval] IDispatch** prop // The parent object.
  375.             );
  376.  
  377.         /**
  378.          * Returns the number of items in the collection.
  379.          */
  380.         [
  381.              propget
  382.             ,helpcontext(0x14020004)
  383.             ,helpstring("Returns the number of items in the collection.")
  384.         ]
  385.         HRESULT  Count(
  386.             [out, retval] long* prop // The number of items.
  387.             );
  388.  
  389.         /**
  390.          * Returns part of a collection.
  391.          */
  392.         [
  393.              propget
  394.             ,id(DISPID_VALUE)
  395.             ,helpcontext(0x14020005)
  396.             ,helpstring("Returns part of a collection.")
  397.         ]
  398.         HRESULT  Item(
  399.             [in] VARIANT* Index, // Index of item to return.
  400.             [out, retval] INode** prop // The item.
  401.             );
  402.  
  403.  
  404.         /*
  405.          * Returns the current coordinate system for items.
  406.          */
  407.         [
  408.              propget
  409.             ,helpcontext(0x14020006)
  410.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  411.         ]
  412.         HRESULT UseWorldCS(
  413.             [out, retval] IMSI_BOOL* bUseWorldCS
  414.             );
  415.  
  416.         /*
  417.          * Returns the current coordinate system for items.
  418.          */
  419.         [
  420.              propput
  421.             ,helpcontext(0x14020006)
  422.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  423.         ]
  424.         HRESULT UseWorldCS(
  425.             [in] IMSI_BOOL bUseWorldCS
  426.             );
  427.  
  428.         /**
  429.          * Creates an enumeration object.
  430.          */
  431.         [
  432.              propget
  433.             ,restricted
  434.             ,id(DISPID_NEWENUM)
  435.             ,helpcontext(0x14020007)
  436.             ,helpstring("Creates an enumeration object.")
  437.         ]
  438.         HRESULT  _NewEnum(
  439.             [out, retval] IUnknown** prop // The enumeration object.
  440.             );
  441.  
  442.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  443.         /*
  444.          * Creates a new Node object and adds it to the collection.
  445.          */
  446.         [
  447.             ,helpcontext(0x14020008)
  448.             ,helpstring("Creates a new Node object and adds it to the collection.")
  449.         ]
  450.         HRESULT  Add(
  451.             [in] VARIANT* X, // X coordinate of the Node.
  452.             [in] VARIANT* Y, // Y coordinate of the Node.
  453.             [in] VARIANT* Z, // Z coordinate of the Node.
  454.             [in, optional] VARIANT* TexU, // X coordinate of the texture of Node.
  455.             [in, optional] VARIANT* TexV, // Y coordinate of the texture of Node.
  456.             [in, optional] VARIANT* NormX, // X coordinate of the Node.
  457.             [in, optional] VARIANT* NormY, // Y coordinate of the Node.
  458.             [in, optional] VARIANT* NormZ, // Z coordinate of the Node.
  459.             [out, retval] INode** prop // The newly created Node object.
  460.             );
  461.     };
  462.  
  463.     [
  464.          object
  465.         ,uuid(6A481154-E531-11CF-A115-00A024158DAF)
  466.         ,dual
  467.         ,helpcontext(0x14030000)
  468.         ,helpstring("Edges collection object.")
  469.     ]
  470.     interface Edges : IDispatch
  471.     {
  472.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  473.         /**
  474.          * Returns an Application object that represents the owner of the specified object.
  475.          */
  476.         [
  477.              propget
  478.             ,helpcontext(0x14030001)
  479.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  480.         ]
  481.         HRESULT  Application(
  482.             [out, retval] IApplication** prop // The Application object.
  483.             );
  484.  
  485.         /**
  486.          * Returns an Surface object that represents the owner of the specified object.
  487.          */
  488.         [
  489.              propget
  490.             ,helpcontext(0x14030002)
  491.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  492.         ]
  493.         HRESULT  Surface(
  494.             [out, retval] ISurface** prop // The Surface object.
  495.             );
  496.  
  497.         /**
  498.          * Returns the parent object for the specified object.
  499.          */
  500.         [
  501.              propget
  502.             ,helpcontext(0x14030003)
  503.             ,helpstring("Returns the parent object for the specified object.")
  504.         ]
  505.         HRESULT  Parent(
  506.             [out, retval] IDispatch** prop // The parent object.
  507.             );
  508.  
  509.         /*
  510.          * Returns the current coordinate system for items.
  511.          */
  512.         [
  513.              propget
  514.             ,helpcontext(0x14030004)
  515.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  516.         ]
  517.         HRESULT UseWorldCS(
  518.             [out, retval] IMSI_BOOL* bUseWorldCS
  519.             );
  520.  
  521.         /*
  522.          * Returns the current coordinate system for items.
  523.          */
  524.         [
  525.              propput
  526.             ,helpcontext(0x14030004)
  527.             ,helpstring("True if coordinates of contour's points should be tronsform to world coordinate system for items.")
  528.         ]
  529.         HRESULT UseWorldCS(
  530.             [in] IMSI_BOOL bUseWorldCS
  531.             );
  532.  
  533.         /**
  534.          * Returns the number of items in the collection.
  535.          */
  536.         [
  537.              propget
  538.             ,helpcontext(0x14030005)
  539.             ,helpstring("Returns the number of items in the collection.")
  540.         ]
  541.         HRESULT  Count(
  542.             [out, retval] long* prop // The number of items.
  543.             );
  544.  
  545.         /**
  546.          * Returns part of a collection.
  547.          */
  548.         [
  549.              propget
  550.             ,id(DISPID_VALUE)
  551.             ,helpcontext(0x14030006)
  552.             ,helpstring("Returns part of a collection.")
  553.         ]
  554.         HRESULT  Item(
  555.             [in] VARIANT* Index, // Index of item to return.
  556.             [out, retval] IEdge** prop // The item.
  557.             );
  558.  
  559.         /**
  560.          * Creates an enumeration object.
  561.          */
  562.         [
  563.              propget
  564.             ,restricted
  565.             ,id(DISPID_NEWENUM)
  566.             ,helpcontext(0x14030007)
  567.             ,helpstring("Creates an enumeration object.")
  568.         ]
  569.         HRESULT  _NewEnum(
  570.             [out, retval] IUnknown** prop // The enumeration object.
  571.             );
  572.  
  573.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  574.         /*
  575.          * Creates a new Edge object and adds it to the collection.
  576.          */
  577.         [
  578.             ,helpcontext(0x14030008)
  579.             ,helpstring("Creates a new Edge object and adds it to the collection.")
  580.         ]
  581.         
  582.         HRESULT  Add(
  583.             [in, optional] VARIANT* varEdge, // coordinates/indexes of the Edge.
  584.             [in, optional] VARIANT* pvarTexEdge, // array of texture coordinates for the Facet.
  585.             [in, optional] VARIANT* pvarNormsEdeg, // array of custom normals for the Facet.
  586.             [out, retval] IEdge** prop // The newly created Node object.
  587.             );
  588.     };
  589.  
  590.     [
  591.          object
  592.         ,hidden, restricted
  593.         ,uuid(6A48115E-E531-11CF-A115-00A024158DAF)
  594.         ,dual
  595.         ,helpcontext(0x14040000)
  596.         ,helpstring("Normals collection object.")
  597.     ]
  598.  
  599.     interface Normals : IDispatch
  600.     {
  601.  
  602.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  603.         /**
  604.          * Returns an Application object that represents the owner of the specified object.
  605.          */
  606.         [
  607.              propget
  608.             ,helpcontext(0x14040001)
  609.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  610.         ]
  611.         HRESULT  Application(
  612.             [out, retval] IApplication** prop // The Application object.
  613.             );
  614.  
  615.         /**
  616.          * Returns an Surface object that represents the owner of the specified object.
  617.          */
  618.         [
  619.              propget
  620.             ,helpcontext(0x14040002)
  621.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  622.         ]
  623.         HRESULT  Surface(
  624.             [out, retval] ISurface** prop // The Surface object.
  625.             );
  626.  
  627.         /**
  628.          * Returns the parent object for the specified object.
  629.          */
  630.         [
  631.              propget
  632.             ,helpcontext(0x14040003)
  633.             ,helpstring("Returns the parent object for the specified object.")
  634.         ]
  635.         HRESULT  Parent(
  636.             [out, retval] IDispatch** prop // The parent object.
  637.             );
  638.  
  639.         /**
  640.          * Returns the number of items in the collection.
  641.          */
  642.         [
  643.              propget
  644.             ,helpcontext(0x14040004)
  645.             ,helpstring("Returns the number of items in the collection.")
  646.         ]
  647.         HRESULT  Count(
  648.             [out, retval] long* prop // The number of items.
  649.             );
  650.  
  651.         /**
  652.          * Returns part of a collection.
  653.          */
  654.         [
  655.              propget
  656.             ,id(DISPID_VALUE)
  657.             ,helpcontext(0x14040005)
  658.             ,helpstring("Returns part of a collection.")
  659.         ]
  660.         HRESULT  Item(
  661.             [in] VARIANT* Index, // Index of item to return.
  662.             [out, retval] INode** prop // The item.
  663.             );
  664.  
  665.  
  666.         /*
  667.          * Returns the current coordinate system for items.
  668.          */
  669.         [
  670.              propget
  671.             ,helpcontext(0x14040006)
  672.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  673.         ]
  674.         HRESULT UseWorldCS(
  675.             [out, retval] IMSI_BOOL* bUseWorldCS
  676.             );
  677.  
  678.         /*
  679.          * Returns the current coordinate system for items.
  680.          */
  681.         [
  682.              propput
  683.             ,helpcontext(0x14040006)
  684.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  685.         ]
  686.         HRESULT UseWorldCS(
  687.             [in] IMSI_BOOL bUseWorldCS
  688.             );
  689.  
  690.         /**
  691.          * Creates an enumeration object.
  692.          */
  693.         [
  694.              propget
  695.             ,restricted
  696.             ,id(DISPID_NEWENUM)
  697.             ,helpcontext(0x14040007)
  698.             ,helpstring("Creates an enumeration object.")
  699.         ]
  700.         HRESULT  _NewEnum(
  701.             [out, retval] IUnknown** prop // The enumeration object.
  702.             );
  703.  
  704.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  705.  
  706.         /*
  707.          * Creates a new Normal object and adds it to the collection.
  708.          */
  709.         [
  710.             ,helpcontext(0x14040008)
  711.             ,helpstring("Creates a new Normal object and adds it to the collection.")
  712.         ]
  713.         HRESULT  Add(
  714.             [in] VARIANT* X, // X component of the Normal.
  715.             [in] VARIANT* Y, // Y component of the Normal.
  716.             [in] VARIANT* Z, // Z component of the Normal.
  717.             [out, retval] INormal** prop // The newly created Normal object.
  718.             );
  719.  
  720.         [
  721.             ,helpcontext(0x14040009)
  722.             ,helpstring("Clear collection contents and generate new collection contents.")
  723.         ]
  724.         HRESULT    GenerateBy(
  725.             [in] ImsiNormalsBy prop
  726.             );
  727.  
  728.         [
  729.             ,helpcontext(0x1404000A)
  730.             ,helpstring("Clear collection contents.")
  731.         ]
  732.         HRESULT    Clear(
  733.             [in] VARIANT* pvarParent
  734.             );
  735.     };
  736.  
  737.     /**
  738.      * An object that describe contour.
  739.      */
  740.     [
  741.          object
  742.         ,uuid(6A48115B-E531-11CF-A115-00A024158DAF)
  743.         ,dual
  744.         ,helpcontext(0x14050000)
  745.         ,helpstring("Contour object.")
  746.     ]
  747.     interface IContour : IDispatch
  748.     {
  749.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  750.         /**
  751.          * Returns an Application object that represents the owner of the specified object.
  752.          */
  753.         [
  754.              propget
  755.             ,helpcontext(0x14050001)
  756.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  757.         ]
  758.         HRESULT  Application(
  759.             [out, retval] IApplication** prop // The Application object.
  760.             );
  761.  
  762.         /**
  763.          * Returns an Facet object that represents the owner of the specified object.
  764.          */
  765.         [
  766.              propget
  767.             ,helpcontext(0x14050002)
  768.             ,helpstring("Returns an Facet object that represents the owner of the specified object.")
  769.         ]
  770.         HRESULT  Facet(
  771.             [out, retval] IFacet** prop // The Faset object.
  772.             );
  773.  
  774.         /**
  775.          * Returns the parent object for the specified object.
  776.          */
  777.         [
  778.              propget
  779.             ,helpcontext(0x14050003)
  780.             ,helpstring("Returns the parent object for the specified object.")
  781.         ]
  782.         HRESULT  Parent(
  783.             [out, retval] IDispatch** prop // The parent object.
  784.             );
  785.  
  786.         /**
  787.         * Returns True if internal contour
  788.         */
  789.         [
  790.             ,propget
  791.             ,helpcontext(0x14050004)
  792.             ,helpstring("Returns True if internal contour")
  793.         ]
  794.         HRESULT     Internal(
  795.             [out, retval] IMSI_BOOL* prop // True if internal contour
  796.             );
  797.  
  798.         /**
  799.          * Returns the number of points in the contour.
  800.          */
  801.         [
  802.              propget
  803.             ,helpcontext(0x14050005)
  804.             ,helpstring("Returns the number of points in the contour.")
  805.         ]
  806.         HRESULT  Count(
  807.             [out, retval] long* prop // The number of points in the contour.
  808.             );
  809.  
  810.         /**
  811.          * Returns the coordinates for the specified contour.
  812.          */
  813.         [
  814.              propget
  815.             ,helpcontext(0x14050006)
  816.             ,helpstring("Returns the coordinates for the specified contour.")
  817.         ]
  818.         HRESULT  Coordinates(
  819.             [out, retval] VARIANT* prop // The coordinates of points in the contour.
  820.             );
  821.  
  822.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  823.  
  824.         /**
  825.          * Returns the distance to the specified Contour object.
  826.          */
  827.         [
  828.              helpcontext(0x14050007)
  829.             ,helpstring("Returns the distance to the specified Contour object.")
  830.             ,restricted, hidden
  831.         ]
  832.         HRESULT GetDistance(
  833.             [in]                        double X, // The x coordinate of the point to be tested.
  834.             [in]                        double Y, // The y coordinate of the point to be tested.
  835.             [in]                        double Z, // The z coordinate of the point to be tested.
  836.             [in, out, optional]            VARIANT *varClosestFacet, // The closest Facet on the Surface object.
  837.             [in, out, optional]            VARIANT *varClosestEdge, // The closest Edge on the Surface object.
  838.             [in, out, optional]            VARIANT *varClosestNode, // The closest Node on the Surface object.
  839.             [out, retval]                double *prop // The distance from (X, Y, Z) to the closest point on the Surface Object.
  840.             );
  841.     };
  842.  
  843.     [
  844.          object
  845.         ,uuid(6A48115A-E531-11CF-A115-00A024158DAF)
  846.         ,dual
  847.         ,helpcontext(0x14060000)
  848.         ,helpstring("Node object.")
  849.     ]
  850.     interface INode : IDispatch
  851.     {
  852.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  853.         /**
  854.          * Returns an Application object that represents the owner of the specified object.
  855.          */
  856.         [
  857.              propget
  858.             ,helpcontext(0x14060001)
  859.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  860.         ]
  861.         HRESULT  Application(
  862.             [out, retval] IApplication** prop // The Application object.
  863.             );
  864.  
  865.         /**
  866.          * Returns an Surface object that represents the owner of the specified object.
  867.          */
  868.         [
  869.              propget
  870.             ,helpcontext(0x14060002)
  871.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  872.         ]
  873.         HRESULT  Surface(
  874.             [out, retval] ISurface** prop // The Surface object.
  875.             );
  876.  
  877.         /**
  878.          * Returns the parent object for the specified object.
  879.          */
  880.         [
  881.              propget
  882.             ,helpcontext(0x14060003)
  883.             ,helpstring("Returns the parent object for the specified object.")
  884.         ]
  885.         HRESULT  Parent(
  886.             [out, retval] IDispatch** prop // The parent object.
  887.             );
  888.  
  889.         /**
  890.          * Returns the Facets collection of this Node object.
  891.          */
  892.         [
  893.              propget
  894.             ,helpcontext(0x14060004)
  895.             ,helpstring("Returns the Facets collection of this Node object.")
  896.         ]
  897.         HRESULT Facets(
  898.             [out, retval] Facets** ppFacets
  899.             );
  900.  
  901.         /**
  902.          * Returns the Edges collection of this Node object.
  903.          */
  904.         [
  905.              propget
  906.             ,helpcontext(0x14060005)
  907.             ,helpstring("Returns the Edges collection of this Node object.")
  908.         ]
  909.         HRESULT Edges(
  910.             [out, retval] Edges** ppEdges
  911.             );
  912.  
  913.         /**
  914.          * The x component of the Node object's location.
  915.          */
  916.         [
  917.              propget
  918.             ,helpcontext(0x14060006)
  919.             ,helpstring("The x component of the Node object's location.")
  920.         ]
  921.         HRESULT  X(
  922.             [out, retval] double* prop // The x component of the Node object's location.
  923.             );
  924.  
  925.         /**
  926.          * The x component of the Node object's location.
  927.          */
  928.         [
  929.              propput
  930.             ,helpcontext(0x14060006)
  931.             ,helpstring("The x component of the Node object's location.")
  932.         ]
  933.         HRESULT  X(
  934.             [in] double prop // The x component of the Node object's location.
  935.             );
  936.  
  937.         /**
  938.          * The y component of the Node object's location.
  939.          */
  940.         [
  941.              propget
  942.             ,helpcontext(0x14060007)
  943.             ,helpstring("The y component of the Node object's location.")
  944.         ]
  945.         HRESULT  Y(
  946.             [out, retval] double* prop // The y component of the Node object's location.
  947.             );
  948.  
  949.         /**
  950.          * The y component of the Node object's location.
  951.          */
  952.         [
  953.              propput
  954.             ,helpcontext(0x14060007)
  955.             ,helpstring("The y component of the Node object's location.")
  956.         ]
  957.         HRESULT  Y(
  958.             [in] double prop // The y component of the Node object's location.
  959.             );
  960.  
  961.  
  962.         /**
  963.          * The z component of the Node object's location.
  964.          */
  965.         [
  966.              propget
  967.             ,helpcontext(0x14060008)
  968.             ,helpstring("The z component of the Node object's location.")
  969.         ]
  970.         HRESULT  Z(
  971.             [out, retval] double* prop // The z component of the Node object's location.
  972.             );
  973.  
  974.         /**
  975.          * The z component of the Node object's location.
  976.          */
  977.         [
  978.              propput
  979.             ,helpcontext(0x14060008)
  980.             ,helpstring("The z component of the Node object's location.")
  981.         ]
  982.         HRESULT  Z(
  983.             [in] double prop // The z component of the Node object's location.
  984.             );
  985.  
  986.         /**
  987.          * Returns U, V components of the texture of this Node object.
  988.          */
  989.  
  990.         [
  991.             ,helpcontext(0x14060009)
  992.             ,helpstring("Returns U, V components of the texture w of this Node object.")
  993.         ]
  994.         HRESULT GetUV(
  995.              [in            ] VARIANT* varParent
  996.             ,[out            ] double* varU
  997.             ,[out            ] double* varV
  998.             );
  999.  
  1000.         /**
  1001.          * Sets U, V components of the texture of this Node object.
  1002.          */
  1003.  
  1004.         [
  1005.             ,helpcontext(0x1406000A)
  1006.             ,helpstring("Sets U, V components of the texture of this Node object.")
  1007.         ]
  1008.         HRESULT SetUV(
  1009.              [in, optional    ] VARIANT* varParent
  1010.             ,[out, optional ] VARIANT* varU
  1011.             ,[out, optional ] VARIANT* varV
  1012.             );
  1013.  
  1014.         /**
  1015.          * Returns X, Y Z components of the normal of this Node object.
  1016.          */
  1017.         [
  1018.             ,helpcontext(0x1406000B)
  1019.             ,helpstring("Returns X, Y Z components of the normal of this Node object.")
  1020.         ]
  1021.         HRESULT GetNorm(
  1022.              [in            ] VARIANT* varParent
  1023.             ,[out            ] double* varX
  1024.             ,[out            ] double* varY
  1025.             ,[out            ] double* varZ
  1026.             );
  1027.  
  1028.         /**
  1029.          * Returns X, Y Z components of the normal of this Node object.
  1030.          */
  1031.         [
  1032.             ,helpcontext(0x1407000C)
  1033.             ,helpstring("Returns X, Y Z components of the normal of this Node object.")
  1034.         ]
  1035.         HRESULT GetNormEx(
  1036.              [in            ] VARIANT* varParent
  1037.             ,[out            ] VARIANT* varX
  1038.             ,[out            ] VARIANT* varY
  1039.             ,[out            ] VARIANT* varZ
  1040.             );
  1041.  
  1042.         /**
  1043.          * Returns X, Y Z components of the normal of this Node object.
  1044.          */
  1045.         [
  1046.             ,helpcontext(0x1406000C)
  1047.             ,helpstring("Returns X, Y Z components of the normal of this Node object.")
  1048.         ]
  1049.         HRESULT SetNorm(
  1050.              [in            ] VARIANT* varParent
  1051.             ,[in            ] VARIANT* varX
  1052.             ,[in            ] VARIANT* varY
  1053.             ,[in            ] VARIANT* varZ
  1054.             );
  1055.  
  1056.         [
  1057.              propget
  1058.             ,helpcontext(0x1406000D)
  1059.             ,helpstring("Returns ID of this Node object.")
  1060.         ]
  1061.         HRESULT ID(
  1062.             [out, retval]    long* prop
  1063.             );
  1064.  
  1065.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1066.         /**
  1067.          * Deletes the object.
  1068.          */
  1069.         [
  1070.             ,helpcontext(0x1406000E)
  1071.             ,helpstring("Deletes the object.")
  1072.         ]
  1073.         HRESULT  Delete(
  1074.             );
  1075.  
  1076.         /**
  1077.          * Returns the distance to the specified Node object.
  1078.          */
  1079.         [
  1080.              helpcontext(0x1406000F)
  1081.             ,helpstring("Returns the distance to the specified Node object.")
  1082.             ,restricted, hidden
  1083.         ]
  1084.         HRESULT GetDistance(
  1085.             [in] double X, // The x coordinate of the point to be tested.
  1086.             [in] double Y, // The y coordinate of the point to be tested.
  1087.             [in] double Z, // The z coordinate of the point to be tested.
  1088.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest point on the Node Object.
  1089.             );
  1090.  
  1091.     };
  1092.  
  1093.     [
  1094.          object
  1095.         ,uuid(6A481159-E531-11CF-A115-00A024158DAF)
  1096.         ,dual
  1097.         ,helpcontext(0x14070000)
  1098.         ,helpstring("Facet object.")
  1099.     ]
  1100.     interface IFacet : IDispatch
  1101.     {
  1102.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1103.         /**
  1104.          * Returns an Application object that represents the owner of the specified object.
  1105.          */
  1106.         [
  1107.              propget
  1108.             ,helpcontext(0x14070001)
  1109.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  1110.         ]
  1111.         HRESULT  Application(
  1112.             [out, retval] IApplication** prop // The Application object.
  1113.             );
  1114.  
  1115.         /**
  1116.          * Returns an Surface object that represents the owner of the specified object.
  1117.          */
  1118.         [
  1119.              propget
  1120.             ,helpcontext(0x14070002)
  1121.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  1122.         ]
  1123.         HRESULT  Surface(
  1124.             [out, retval] ISurface** prop // The Surface object.
  1125.             );
  1126.  
  1127.         /**
  1128.          * Returns the parent object for the specified object.
  1129.          */
  1130.         [
  1131.              propget
  1132.             ,helpcontext(0x14070003)
  1133.             ,helpstring("Returns the parent object for the specified object.")
  1134.         ]
  1135.         HRESULT  Parent(
  1136.             [out, retval] IDispatch** prop // The parent object.
  1137.             );
  1138.  
  1139.         /**
  1140.          * Returns the Nodes object for the specified object.
  1141.          */
  1142.         [
  1143.              propget
  1144.             ,helpcontext(0x14070004)
  1145.             ,helpstring("Returns the Nodes object for the specified object.")
  1146.         ]
  1147.         HRESULT Nodes(
  1148.             [out, retval] Nodes** ppNodes
  1149.             );
  1150.  
  1151.         /**
  1152.          * Returns the Contours object for the specified object.
  1153.          */
  1154.         [
  1155.              propget
  1156.             ,helpcontext(0x14070005)
  1157.             ,helpstring("Returns the Contours object for the specified object.")
  1158.         ]
  1159.         HRESULT Contours(
  1160.             [out, retval] Contours** ppContours
  1161.             );
  1162.  
  1163.         /**
  1164.          * Returns the Edges object for the specified object.
  1165.          */
  1166.         [
  1167.              propget
  1168.             ,helpcontext(0x14070006)
  1169.             ,helpstring("Returns the Edges object for the specified object.")
  1170.         ]
  1171.         HRESULT Edges(
  1172.             [out, retval] Edges** ppEdges
  1173.             );
  1174.  
  1175.         /*
  1176.         *    True if double sided facet
  1177.         */
  1178.         [
  1179.              propget
  1180.             ,helpcontext(0x14070007)
  1181.             ,helpstring("True if double sided facet")
  1182.         ]
  1183.         HRESULT DoubleSided(
  1184.             [out, retval] IMSI_BOOL* prop
  1185.             );
  1186.  
  1187.         /*
  1188.         *    True if double sided facet
  1189.         */
  1190.         [
  1191.              propput
  1192.             ,helpcontext(0x14070007)
  1193.             ,helpstring("True if double sided facet")
  1194.         ]
  1195.         HRESULT DoubleSided(
  1196.             [in] IMSI_BOOL prop
  1197.             );
  1198.  
  1199.         [
  1200.              propget
  1201.             ,helpcontext(0x14070008)
  1202.             ,helpstring("Returns the ID of the facet.")
  1203.         ]
  1204.         HRESULT ID(
  1205.             [out, retval]    long* prop
  1206.             );
  1207.  
  1208.         /**
  1209.          * Returns A, B, C, D components of the plane of this Facet object.
  1210.          */
  1211.         [
  1212.              propget
  1213.             ,helpcontext(0x14070009)
  1214.             ,helpstring("Returns A, B, C, D components of the plane of this Facet object.")
  1215.         ]
  1216.         HRESULT Plane(
  1217.             [out, retval] VARIANT* pvarPlane
  1218.             );
  1219.  
  1220.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1221.         /**
  1222.          * Deletes the object.
  1223.          */
  1224.         [
  1225.              helpcontext(0x1407000A)
  1226.             ,helpstring("Deletes the object.")
  1227.         ]
  1228.         HRESULT  Delete(
  1229.             );
  1230.  
  1231.         /**
  1232.          * Returns the distance to the specified Facet object.
  1233.          */
  1234.         [
  1235.              helpcontext(0x1407000B)
  1236.             ,helpstring("Returns the distance to the specified Facet object.")
  1237.             ,restricted, hidden
  1238.         ]
  1239.         HRESULT GetDistance(
  1240.             [in] double X, // The x coordinate of the point to be tested.
  1241.             [in] double Y, // The y coordinate of the point to be tested.
  1242.             [in] double Z, // The z coordinate of the point to be tested.
  1243.             [in, out, optional] VARIANT *varClosestNode, // The closest Node on the Facet object.
  1244.             [in, out, optional] VARIANT *varClosestContour, // The closest Contour on the Facet object.
  1245.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest point on the Facet Object.
  1246.             );
  1247.     };
  1248.  
  1249.     [
  1250.          object
  1251.         ,uuid(6A481158-E531-11CF-A115-00A024158DAF)
  1252.         ,dual
  1253.         ,helpcontext(0x14080000)
  1254.         ,helpstring("Edge object.")
  1255.     ]
  1256.     interface IEdge : IDispatch
  1257.     {
  1258.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1259.         /**
  1260.          * Returns an Application object that represents the owner of the specified object.
  1261.          */
  1262.         [
  1263.              propget
  1264.             ,helpcontext(0x14080001)
  1265.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  1266.         ]
  1267.         HRESULT  Application(
  1268.             [out, retval] IApplication** prop // The Application object.
  1269.             );
  1270.  
  1271.         /**
  1272.          * Returns an Surface object that represents the owner of the specified object.
  1273.          */
  1274.         [
  1275.              propget
  1276.             ,helpcontext(0x14080002)
  1277.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  1278.         ]
  1279.         HRESULT  Surface(
  1280.             [out, retval] ISurface** prop // The Surface object.
  1281.             );
  1282.  
  1283.         /**
  1284.          * Returns the parent object for the specified object.
  1285.          */
  1286.         [
  1287.              propget
  1288.             ,helpcontext(0x14080003)
  1289.             ,helpstring("Returns the parent object for the specified object.")
  1290.         ]
  1291.         HRESULT  Parent(
  1292.             [out, retval] IDispatch** prop // The parent object.
  1293.             );
  1294.  
  1295.         /**
  1296.             Returns the Nodes collection of this Edge object
  1297.          */
  1298.         [
  1299.              propget
  1300.             ,helpcontext(0x14080004)
  1301.             ,helpstring("Returns the Nodes collection of this Edge object")
  1302.         ]
  1303.         HRESULT Nodes(
  1304.             [out, retval] Nodes** ppNodes
  1305.             );
  1306.  
  1307.         /**
  1308.             Returns the Facets collection of this Edge object.
  1309.          */
  1310.         [
  1311.              propget
  1312.             ,helpcontext(0x14080005)
  1313.             ,helpstring("Returns the Facets collection of this Edge object.")
  1314.         ]
  1315.         HRESULT Facets(
  1316.             [out, retval] Facets** ppFacets
  1317.             );
  1318.  
  1319.         /**
  1320.             True if visible Edge.
  1321.          */
  1322.         [
  1323.              propget
  1324.             ,helpcontext(0x14080006)
  1325.             ,helpstring("True if visible Edge.")
  1326.         ]
  1327.         HRESULT Visible(
  1328.             [out, retval] IMSI_BOOL* prop
  1329.             );
  1330.  
  1331.         /**
  1332.             True if visible Edge
  1333.          */
  1334.         [
  1335.              propput
  1336.             ,helpcontext(0x14080006)
  1337.             ,helpstring("True if visible Edge.")
  1338.         ]
  1339.         HRESULT Visible(
  1340.             [in] IMSI_BOOL prop
  1341.             );
  1342.  
  1343.         /**
  1344.             True if formmaking Edge.
  1345.          */
  1346.         [
  1347.              propget
  1348.             ,helpcontext(0x14080007)
  1349.             ,helpstring("True if formmaking Edge.")
  1350.         ]
  1351.         HRESULT FormMaking(
  1352.             [out, retval] IMSI_BOOL* prop
  1353.             );
  1354.  
  1355.         /**
  1356.             True if formmaking Edge
  1357.          */
  1358.         [
  1359.              propput
  1360.             ,helpcontext(0x14080007)
  1361.             ,helpstring("True if formmaking Edge.")
  1362.         ]
  1363.         HRESULT FormMaking(
  1364.             [in] IMSI_BOOL prop
  1365.             );
  1366.  
  1367.         [
  1368.              propget
  1369.             ,helpcontext(0x14080008)
  1370.             ,helpstring("Returns ID of the Edge.")
  1371.         ]
  1372.         HRESULT ID(
  1373.             [out, retval]    long* prop
  1374.             );
  1375.  
  1376.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1377.         /**
  1378.          * Deletes the object.
  1379.          */
  1380.         [
  1381.              helpcontext(0x14080009)
  1382.             ,helpstring("Deletes the object.")
  1383.         ]
  1384.         HRESULT  Delete(
  1385.             );
  1386.  
  1387.         /**
  1388.          * Returns the distance to the specified Edge object.
  1389.          */
  1390.         [
  1391.              helpcontext(0x1408000A)
  1392.             ,helpstring("Returns the distance to the specified Edge object.")
  1393.             ,restricted, hidden
  1394.         ]
  1395.         HRESULT GetDistance(
  1396.             [in] double X, // The x coordinate of the point to be tested.
  1397.             [in] double Y, // The y coordinate of the point to be tested.
  1398.             [in] double Z, // The z coordinate of the point to be tested.
  1399.             [in, out, optional] VARIANT *varClosestNode, // The closest Node on the Edge object.
  1400.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest point on the Edge Object.
  1401.             );
  1402.     };
  1403.  
  1404.  
  1405.     [
  1406.          object
  1407.         ,hidden, restricted
  1408.         ,uuid(6A48115C-E531-11CF-A115-00A024158DAF)
  1409.         ,dual
  1410.         ,helpcontext(0x14090000)
  1411.         ,helpstring("Normal object.")
  1412.     ]
  1413.     interface INormal : IDispatch
  1414.     {
  1415.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1416.         /**
  1417.          * Returns an Application object that represents the owner of the specified object.
  1418.          */
  1419.         [
  1420.              propget
  1421.             ,helpcontext(0x14090001)
  1422.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  1423.         ]
  1424.         HRESULT  Application(
  1425.             [out, retval] IApplication** prop // The Application object.
  1426.             );
  1427.  
  1428.         /**
  1429.          * Returns an Surface object that represents the owner of the specified object.
  1430.          */
  1431.         [
  1432.              propget
  1433.             ,helpcontext(0x14090002)
  1434.             ,helpstring("Returns an Surface object that represents the owner of the specified object.")
  1435.         ]
  1436.         HRESULT  Surface(
  1437.             [out, retval] ISurface** prop // The Surface object.
  1438.             );
  1439.  
  1440.         /**
  1441.          * Returns the parent object for the specified object.
  1442.          */
  1443.         [
  1444.              propget
  1445.             ,helpcontext(0x14090003)
  1446.             ,helpstring("Returns the parent object for the specified object.")
  1447.         ]
  1448.         HRESULT  Parent(
  1449.             [out, retval] IDispatch** prop // The parent object.
  1450.             );
  1451.  
  1452.  
  1453.         /**
  1454.          * Returns the Nodes collection of this Normal object.
  1455.          */
  1456.         [
  1457.              propget
  1458.             ,helpcontext(0x14090004)
  1459.             ,helpstring("Returns the Nodes collection of this Normal object.")
  1460.         ]
  1461.         HRESULT Nodes(
  1462.             [out, retval] Nodes** ppNodes
  1463.             );
  1464.  
  1465.         /**
  1466.          * The x component of the Node object's location.
  1467.          */
  1468.         [
  1469.              propget
  1470.             ,helpcontext(0x14090005)
  1471.             ,helpstring("The x component of the Node object's location.")
  1472.         ]
  1473.         HRESULT  X(
  1474.             [out, retval] double* prop // The x component of the Node object's location.
  1475.             );
  1476.  
  1477.         /**
  1478.          * The x component of the Node object's location.
  1479.          */
  1480.         [
  1481.              propput
  1482.             ,helpcontext(0x14090005)
  1483.             ,helpstring("The x component of the Node object's location.")
  1484.         ]
  1485.         HRESULT  X(
  1486.             [in] double prop // The x component of the Node object's location.
  1487.             );
  1488.  
  1489.         /**
  1490.          * The y component of the Node object's location.
  1491.          */
  1492.         [
  1493.              propget
  1494.             ,helpcontext(0x14090006)
  1495.             ,helpstring("The Y component of the Node object's location.")
  1496.         ]
  1497.         HRESULT  Y(
  1498.             [out, retval] double* prop // The y component of the Node object's location.
  1499.             );
  1500.  
  1501.         /**
  1502.          * The y component of the Node object's location.
  1503.          */
  1504.         [
  1505.              propput
  1506.             ,helpcontext(0x14090006)
  1507.             ,helpstring("The Y component of the Node object's location.")
  1508.         ]
  1509.         HRESULT  Y(
  1510.             [in] double prop // The y component of the Node object's location.
  1511.             );
  1512.  
  1513.  
  1514.         /**
  1515.          * The z component of the Node object's location.
  1516.          */
  1517.         [
  1518.              propget
  1519.             ,helpcontext(0x14090007)
  1520.             ,helpstring("The Z component of the Node object's location.")
  1521.         ]
  1522.         HRESULT  Z(
  1523.             [out, retval] double* prop // The z component of the Node object's location.
  1524.             );
  1525.  
  1526.         /**
  1527.          * The z component of the Node object's location.
  1528.          */
  1529.         [
  1530.              propput
  1531.             ,helpcontext(0x14090007)
  1532.             ,helpstring("The Z component of the Node object's location.")
  1533.         ]
  1534.         HRESULT  Z(
  1535.             [in] double prop // The z component of the Node object's location.
  1536.             );
  1537.  
  1538.         [
  1539.              propget
  1540.             ,helpcontext(0x14090008)
  1541.             ,helpstring("Returns ID of the Node .")
  1542.         ]
  1543.         HRESULT ID(
  1544.             [out, retval]    long* prop
  1545.             );
  1546.  
  1547.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1548.  
  1549.     };
  1550.  
  1551.     [
  1552.         object
  1553.         ,uuid(6A481153-E531-11CF-A115-00A024158DAF)
  1554.         ,dual
  1555.         ,helpcontext(0x140A0000)
  1556.         ,helpstring("Surface object.")
  1557.     ]
  1558.     interface ISurface : IDispatch
  1559.     {
  1560.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1561.         /**
  1562.          * Returns an Application object that represents the owner of the specified object.
  1563.          */
  1564.         [
  1565.              propget
  1566.             ,helpcontext(0x140A0001)
  1567.             ,helpstring("Returns an Application object that represents the owner of the specified object.")
  1568.         ]
  1569.         HRESULT  Application(
  1570.             [out, retval] IApplication** prop // The Application object.
  1571.             );
  1572.  
  1573.         /**
  1574.          * Returns the parent object for the specified object.
  1575.          */
  1576.         [
  1577.              propget
  1578.             ,helpcontext(0x140A0002)
  1579.             ,helpstring("Returns the parent object for the specified object.")
  1580.         ]
  1581.         HRESULT  Parent(
  1582.             [out, retval] IDispatch** prop // The parent object.
  1583.             );
  1584.  
  1585.         /*
  1586.             Returns the Facets collection of this Surface object.
  1587.         */
  1588.         [
  1589.              propget
  1590.             ,helpcontext(0x140A0003)
  1591.             ,helpstring("Returns the Facets collection of this Surface object.")
  1592.         ]
  1593.         HRESULT Facets(
  1594.             [out, retval] Facets** ppFacets
  1595.             );
  1596.  
  1597.         /*
  1598.             Returns the Edges collection of this Surface object.
  1599.         */
  1600.         [
  1601.              propget
  1602.             ,helpcontext(0x140A0004)
  1603.             ,helpstring("Returns the Edges collection of this Surface object.")
  1604.         ]
  1605.         HRESULT Edges(
  1606.             [out, retval] Edges** ppEdges
  1607.             );
  1608.  
  1609.         /*
  1610.             Returns the Nodes collection of this Surface object.
  1611.         */
  1612.         [
  1613.              propget
  1614.             ,helpcontext(0x140A0005)
  1615.             ,helpstring("Returns the Nodes collection of this Surface object.")
  1616.         ]
  1617.         HRESULT Nodes(
  1618.             [out, retval] Nodes** ppNodes
  1619.             );
  1620.  
  1621.         /*
  1622.             Returns the quality of the surface
  1623.         */
  1624.         [
  1625.              propget
  1626.             ,helpcontext(0x140A0006)
  1627.             ,helpstring("Returns the quality of the surface.")
  1628.         ]
  1629.         HRESULT UpdateQuality(
  1630.             [out, retval] ImsiSurfUpdateQuality* prop
  1631.             );
  1632.  
  1633.         /*
  1634.             Sets the quality of the surface.
  1635.         */
  1636.         [
  1637.              propput
  1638.             ,helpcontext(0x140A0006)
  1639.             ,helpstring("Sets the quality of the surface.")
  1640.         ]
  1641.         HRESULT UpdateQuality(
  1642.             [in] ImsiSurfUpdateQuality prop
  1643.             );
  1644.  
  1645.         /**
  1646.          * True if changes to the Surface object will be immmediately reflected.
  1647.          */
  1648.         [
  1649.              propget
  1650.             ,helpcontext(0x140A0007)
  1651.             ,helpstring("True if changes to the Surface object will be immmediately reflected.")
  1652.         ]
  1653.         HRESULT Update(
  1654.             [out, retval] IMSI_BOOL* prop
  1655.             );
  1656.  
  1657.         /*
  1658.          * True if changes to the Surface object will be immmediately reflected.
  1659.         */
  1660.         [
  1661.              propput
  1662.             ,helpcontext(0x140A0007)
  1663.             ,helpstring("True if changes to the Surface object will be immmediately reflected.")
  1664.         ]
  1665.         HRESULT Update(
  1666.             [in] IMSI_BOOL prop
  1667.             );
  1668.  
  1669.         /*
  1670.         * True if surface can't has facets due "degenerative faceting" ACIS option
  1671.         */
  1672.         [
  1673.              propget
  1674.             ,helpcontext(0x140A0008)
  1675.             ,helpstring("True if surface can't has facets due 'degenerative faceting' ACIS option")
  1676.         ]
  1677.         HRESULT    Facetless(
  1678.             [out, retval] IMSI_BOOL* prop
  1679.             );
  1680.  
  1681.         ///////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  1682.  
  1683.         /**
  1684.          * Returns the distance to the specified Graphic object.
  1685.          */
  1686.         [
  1687.              helpcontext(0x140A0009)
  1688.             ,helpstring("Returns the distance to the specified Surface object.")
  1689.             ,restricted, hidden
  1690.         ]
  1691.         HRESULT GetDistance(
  1692.             [in] IDispatch*    pIDispVw,
  1693.             [in] double X, // The x coordinate of the point to be tested.
  1694.             [in] double Y, // The y coordinate of the point to be tested.
  1695.             [in] double Z, // The z coordinate of the point to be tested.
  1696.             [out, optional] VARIANT *pvarClosestFacet, // The closest Facet on the Surface object.
  1697.             [out, optional] VARIANT *pvarClosestEdge, // The closest Edge on the Surface object.
  1698.             [out, optional] VARIANT *pvarClosestNode, // The closest Node on the Surface object.
  1699.             [out, optional] VARIANT *pvarHitPoint,
  1700.             [out, optional] VARIANT *pvarHitNormal,
  1701.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest point on the Surface Object.
  1702.             );
  1703.  
  1704.         [
  1705.              helpcontext(0x140A000A)
  1706.             ,helpstring("Smooth surface.")
  1707.         ]
  1708.         HRESULT Smooth(
  1709.             [in]    ImsiSmoothQuality prop
  1710.             );
  1711.     };
  1712.  
  1713. [
  1714.      uuid(6A481409-E531-11CF-A115-00A024158DAF)
  1715.     ,version(8.0)
  1716.     ,helpfile("tcsdk.chm")
  1717.     ,helpstring("GXSurface 8.0 Type Library")
  1718. ]
  1719. library GXSurfLib
  1720. {
  1721.     importlib("stdole32.tlb");
  1722.     importlib("stdole2.tlb");
  1723.     importlib("..\include\imsigx.tlb");
  1724.  
  1725.     [
  1726.          uuid(6A481810-E531-11CF-A115-00A024158DAF)
  1727.         ,hidden
  1728.         ,helpcontext(0x140B0000)
  1729.         ,helpstring("The TurboCAD Surface.")
  1730.     ]
  1731.     coclass XSurface
  1732.     {
  1733.         [default] interface ISurface;
  1734.     }
  1735. };
  1736.